PREPARING o DELIVERED). Fire spark no acepta un enum fijo de cocina.
Requiere un access token con el scope
orders:write. Consulta
Token para obtener un token.Cómo encaja en el flujo
- Tras el checkout, Fire spark envía un webhook cuando el pedido llega a un estado al que te suscribiste.
- Tu POS crea el ticket cuando llega
order.status.changedcondata.statusinjecting(o el estado que uses para el traspaso). - Cada evento posterior de cocina debe hacer PATCH del siguiente estado de fulfillment. Fire spark actualiza el pedido y puede enviar otro webhook.
- La llamada es asíncrona. Reclama el avance mientras el fulfillment está en
WAITINGy responde sin esperar al siguiente nodo, así que puedes llamarla desde el manejador del webhook. El pedido de la respuesta puede seguir siendo el snapshot de antes de este avance. Un409significa que la fila no estaba enWAITING.
Cuándo llamar este endpoint
Las etiquetas de abajo son ejemplos. Usa los estados de fulfillment de tu comercio.Un pedido puede estar en más de un estado de fulfillment a la vez (por
ejemplo cocina y delivery). Envía el siguiente estado del trabajo que
avanzas. Los demás estados en curso siguen hasta que los actualices.
Parámetros de ruta
Cuerpo de la solicitud
Marcar el pedido como pagado
Mientras el pedido está enPAYING, envía fulfillment_status PAID cuando tu POS haya cobrado. Fire spark marca como pagados los tenders de ese paso (una captura por tender, como si marcaras cada uno como cobrado). El pedido avanza a PAID solo cuando todos los tenders del paso están saldados. Un canje reservado cuenta como saldado; Fire spark confirma los canjes.
- Sin
tenders: se marcan como pagados todos los tenders que el paso aún espera, y el pedido avanza. Es el camino de todos a la vez. - Con
tenders, y el paso tiene un solo tender: ese tender se marca pagado sicompletedestrue, y el pedido avanza. El mismo comportamiento de antes. - Con
tenders, y el paso tiene más de un tender: solo cambian los elementos concompleted: true. Los que no envías se quedan como están. El pedido no avanza hasta que cada tender del paso está enPAID, contando los de esta llamada. Repite la misma llamada para cada tender. La última avanza el pedido. Las anteriores responden200, no un error.
IDLE o PENDING que cobran dinero. Un tender que ya está PAID no se captura otra vez. Un id desconocido, o uno que no es de este pedido, responde 404 TENDER_NOT_FOUND.
Mientras queden tenders pendientes, la respuesta trae el pedido en data y además:
pendingTenders es una cantidad. Si queda uno, el mensaje dice “1 tender still pending”. Cuando la llamada que completa el conjunto avanza el pedido, los mismos campos vuelven con pendingTenders 0, transitioned true y el mensaje Tender updated. Order transitioned to PAID.
Actualizar solo un tender no envía un webhook del pedido ni un evento de realtime. Esos salen solo cuando el pedido sí avanza, después de que ese paso terminó su propio trabajo.
Combina este endpoint con los webhooks de pedidos:
el webhook entrega el pedido cuando llega a un estado suscrito; este endpoint
es cómo tu POS reporta el resto del camino en cocina. No envíes un estado
terminal (
FULFILLED, VOIDED, REVERSED, REFUNDED) — esos nodos se
entran solos. Tras el último estado de cocina o entrega (por ejemplo
DELIVERED), Fire spark entra a FULFILLED. Si un callback agota los
reintentos, entra a VOIDED (sin pago) o REVERSED (pagado). Cancelar y
reembolsar desde el dashboard sí llegan a esos terminales.